<?	
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  		
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Producto_Compuesto( $this );
	
	class Producto_Compuesto extends Frm
	{
	function Producto_Compuesto( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncProducto']				= new InputList( "Producto", "ncProducto" );
			$this->aFields['ncProductoB']				= new InputList( "Subproducto", "ncProductoB" );
			$this->aFields['nqProductoB']				= new InputNumber ( "Cantidad", "nqProductoB" );
		}
	function setValue( $ncProductoA, $ncProductoB )
		{
			$cSql = "SELECT nqProductoB
								FROM gtProductoCompuesto
								WHERE ncProductoA = $ncProductoA
								AND ncProductoB = $ncProductoB";
			$aRow = $this->oDatabase->getArray($cSql);	
			$this->setFieldsArray ( $aRow );
			return $aRow;
		}
	function initializeForm()
		{
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && $this->aFields['ncProducto']->getValue() && $this->aFields['ncProductoB']->getValue() )
				{
					$aRow = $this->setValue( $this->aFields['ncProducto']->getValue(), $this->aFields['ncProductoB']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel ( "Producto Compuesto");
			return true;
		}
	function initializeField( $cField , &$oField )
		{			
			switch ( $cField )
			{
				case 'ncProducto':
					if ( $oField->getValue() ) 
					{
						$oField->setHidden();
					}
					else
					{
						$cSql= "SELECT ncProducto, cdProducto FROM gtProducto";
						$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
					}
					break;
				case 'ncProductoB':
					$cSql= "SELECT ncProducto, cdProducto FROM gtProducto WHERE ncProducto NOT IN (SELECT ncProductoA FROM gtProductoCompuesto) AND ncProducto != " . $this->aFields['ncProducto']->getValue();
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
					break;
			}
		}
	}
?>